﻿using System.Collections.Generic;

namespace GameFramework.UI
{
    /// <summary>
    /// 界面组接口。
    /// </summary>
    public interface IUIGroup
    {
        /// <summary>
        /// 获取界面组名称。
        /// </summary>
        string Name { get; }

        /// <summary>
        /// 获取界面组中界面数量。
        /// </summary>
        int UIFormCount { get; }

        /// <summary>
        /// 获取当前界面。
        /// </summary>
        IUIForm CurrentUIForm { get; }

        /// <summary>
        /// 获取界面组辅助器。
        /// </summary>
        IUIGroupHelper Helper { get; }

        /// <summary>
        /// 界面组中是否存在界面。
        /// </summary>
        /// <param name="uiKey">界面键值。</param>
        /// <returns>界面组中是否存在界面。</returns>
        bool HasUIForm(string uiKey);

        /// <summary>
        /// 从界面组中获取界面。
        /// </summary>
        /// <param name="uiKey">界面键值。</param>
        /// <returns>要获取的界面。</returns>
        IUIForm GetUIForm(string uiKey);

        /// <summary>
        /// 从界面组中获取所有界面。
        /// </summary>
        /// <returns>界面组中的所有界面。</returns>
        IUIForm[] GetAllUIForms();

        /// <summary>
        /// 从界面组中获取所有界面。
        /// </summary>
        /// <param name="results">界面组中的所有界面。</param>
        void GetAllUIForms(List<IUIForm> results);
    }
}